Spreadsheet applications enable users to view and manipulate tabular data. For example, a spreadsheet application can enable a user to view and manipulate a spreadsheet table containing rows for different products and columns for different warehouses. In this example, the cells contain values indicating inventories of the products at the warehouses. In many cases, users want to be able to sort the rows in spreadsheet tables. Continuing the previous example, the user may want to sort the rows in the spreadsheet table based on how much a certain warehouse contains of each of the products. In other cases, users want to be able to sort the columns in spreadsheet tables. Continuing the previous example, the user may want to sort the columns in the spreadsheet table based on how much of a certain product is in each of the warehouses.
In large spreadsheet tables, the process of sorting rows in a spreadsheet table can be relatively slow. Such processing delays can disrupt a user's train of thought or discourage the user from sorting the rows in a spreadsheet table. Consequently, it is desirable to make the process of sorting rows in a spreadsheet table as quick as possible.